package com.grape.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.grape.domain.UserOnlineTime;
import com.grape.dto.UserOnlineTimeDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 *
 * 用户在线时间表 Mapper接口
 *
 * @author  putao
 * @email   2628279194@qq.com
 */
public interface UserOnlineTimeMapper extends BaseMapper<UserOnlineTime> {

    /**
     * 统计当前用户近七天的使用时长
     * @param userId        用户id
     * @param startTime     统计开始时间（yyyy-MM-dd格式）
     * @return              在线时长DTO集合
     */
    List<UserOnlineTimeDTO> statisticalTime(@Param("userId") String userId, @Param("startTime") String startTime);

    /**
     * 统计当前用户上一次的近七天的使用时长
     * @param userId        用户id
     * @param startTime     统计开始时间（yyyy-MM-dd格式）
     * @return              在线时长DTO集合
     */
    List<UserOnlineTimeDTO> statisticalLastTime(@Param("userId") String userId, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 查询在线用户当天最大时间的在线记录
     * @param userIdList        用户id集合
     * @return                  在线时长集合
     */
    List<UserOnlineTime> selectTodayMaxOnlineTime(List<String> userIdList);
}
